import { PublicKey } from '@solana/web3.js';

/**
 * 智能合约配置
 */
export class ContractsConfig {
  // 联合曲线合约程序 ID
  static readonly BONDING_CURVE_PROGRAM_ID = new PublicKey(
    process.env.BONDING_CURVE_PROGRAM_ID || 'DW6xwBgnBY6MUf7J4i8FwaqmncfvbKvW9hN9HmCyhDLH'
  );

  // 其他合约 ID 可以在这里添加
  // static readonly OTHER_PROGRAM_ID = new PublicKey('...');

  /**
   * 验证所有合约配置是否正确
   */
  static validateConfig(): boolean {
    try {
      // 验证程序 ID 格式是否正确
      this.BONDING_CURVE_PROGRAM_ID.toString();
      return true;
    } catch (error) {
      console.error('Invalid contract configuration:', error);
      return false;
    }
  }

  /**
   * 获取当前环境的配置信息
   */
  static getConfigInfo() {
    return {
      bondingCurveProgramId: this.BONDING_CURVE_PROGRAM_ID.toString(),
      environment: process.env.NODE_ENV || 'development',
      cluster: process.env.SOLANA_CLUSTER || 'devnet'
    };
  }
}
